﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Espam.Idiomas.Decimo.Tesis.Datos;
using System.Data;
using System.Data.SqlClient;

namespace Espam.Idiomas.Decimo.Tesis.Negocio
{
   public class UbicacionModulos
    {
        public int idUbicacion { get; set; }
        public string descripcionUbicacion { get; set; }
        public int idEstado { get; set; }
    }
    public  class ListadoUbicacionModulo : UbicacionModulos
    {
        public List<UbicacionModulos> getUbicaciones()
        {
            BaseDatos oBase = new BaseDatos();
            List<UbicacionModulos> lista = new List<UbicacionModulos>();
            SqlDataReader reader;
            try
            {
                string consulta = string.Format("spGetUbicaciones");
                SqlCommand comando = new SqlCommand(consulta, oBase.conexion);
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("estado", idEstado);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    UbicacionModulos oUbicacion = new UbicacionModulos();
                    oUbicacion.idUbicacion = reader.GetInt32(0);
                    oUbicacion.descripcionUbicacion = reader.GetString(1);
                    lista.Add(oUbicacion);
                }
                return lista;
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                oBase.CerrarConexion();
            }
        }

        public string InsertUbicaciones()
        {
            UbicacionModulos oUbicaciones = new UbicacionModulos();
            BaseDatos oBase = new BaseDatos();
            string mensaje="";
            SqlDataReader reader;
            try
            {
                string consulta = string.Format("sp_insertUbicacion");
                SqlCommand comando = new SqlCommand();
                comando.Connection = oBase.conexion;
                comando.CommandText = consulta;
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("ubicacion", descripcionUbicacion);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    mensaje = reader.GetString(0);
                }

            }
            catch (Exception ex)
            {
                mensaje = ex.Message;
            }
            finally
            {
                oBase.CerrarConexion();
            }
            
            return mensaje;
        }

        public string DeleteUbicacion()
        {
            string mensaje = "";
            SqlDataReader reader;
            BaseDatos oBase = new BaseDatos();
            try
            {
                string consulta = string.Format("[sp_deleteUbicacion]");
                SqlCommand comando = new SqlCommand();
                comando.Connection = oBase.conexion;
                comando.CommandText = consulta;
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("idUbicacion", idUbicacion);
                comando.Parameters.AddWithValue("estado",idEstado);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    mensaje = reader.GetString(0);
                }

            }
            catch (Exception ex)
            {
                mensaje = ex.Message;
            }
            finally
            {
                oBase.CerrarConexion();  
            }
            return mensaje;
        }

        public string EditUbicacion()
        {
            string mensaje = "";
            SqlDataReader reader;
            BaseDatos oBase = new BaseDatos();
            try
            {
                string consulta = string.Format("sp_editUbicacion");
                SqlCommand comando = new SqlCommand(consulta, oBase.conexion);
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("idUbicacion", idUbicacion);
                comando.Parameters.AddWithValue("ubicacion", descripcionUbicacion);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    mensaje = reader.GetString(0);
                }
            }
            catch (Exception ex)
            {
                mensaje = ex.Message;
            }
            finally
            {
                oBase.CerrarConexion();
            }
            return mensaje;
        }

        public List<UbicacionModulos> GetUbicationById()
        {
            List<UbicacionModulos> lista = new List<UbicacionModulos>();
            SqlDataReader reader;
            string mensaje = "";
            BaseDatos oBase = new BaseDatos();
            try
            {
                string consulta = string.Format("sp_getUbicacionById");
                SqlCommand comando = new SqlCommand(consulta,oBase.conexion);
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("idUbicacion",idUbicacion);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    UbicacionModulos oUbicaciones = new UbicacionModulos();
                    oUbicaciones.idUbicacion = reader.GetInt32(0);
                    oUbicaciones.descripcionUbicacion = reader.GetString(1);
                    lista.Add(oUbicaciones);
                }
            }
            catch (Exception ex)
            {
                mensaje = ex.Message;
            }
            finally
            {
                oBase.CerrarConexion();
            }
            return lista;
        }
    }
}
